package com.demo.java.OD151_200.OD165;

import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【火星文计算】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145778863
 */
public class OdMain {
    public static void main(String[] args) {
        try (Scanner s = new Scanner(System.in)) {
            // 读取输入
            String line = s.nextLine();

            // 提取操作符（非数字）列表
            List<String> operators = Arrays.stream(line.split("\\w+"))
                    .filter(x -> !x.isEmpty())
                    .collect(Collectors.toList());

            // 提取数字列表
            List<Integer> nums = Arrays.stream(line.split("\\W+"))
                    .map(Integer::parseInt)
                    .collect(Collectors.toList());

            // 处理 $ 运算符
            for (int i = 0; i < operators.size(); i++) {
                if (operators.get(i).equals("$")) {
                    // 按给定规则计算 $ 运算
                    int tmp = 3 * nums.get(i) + nums.get(i + 1) + 2;
                    nums.set(i, tmp);
                    nums.remove(i + 1);  // 移除下一个数字
                    operators.remove(i);  // 移除当前运算符
                    i--;  // 需要回退一个位置继续检查
                }
            }

            // 处理常规的加减运算
            int res = nums.get(0);
            for (int i = 1; i < nums.size(); ++i) {
                res = 2 * res + 3 * nums.get(i) + 4;
            }

            // 输出结果
            System.out.print(res);
        }
    }
}